#include "SellPos.h"

/*static*/SellPos SellPos::_MAX_POS = SellPos(0,0);


SellPos::SellPos(long x,long y)
	:_pos(Vector3l(x,y)), _isLimit(false)
{
}

SellPos::SellPos(Vector3l v)
	:_pos(v), _isLimit(false)
{
	// Construct
}

SellPos::~SellPos(void)
{
}

/*static*/void SellPos::setMaxPos(long x, long y) 
{
	_MAX_POS = SellPos(x, y);
}

void SellPos::add(SellPos sp)
{
	_pos.x += sp._pos.x;
	_pos.y += sp._pos.y;

	if( _pos.x >= _MAX_POS._pos.x || _pos.x < 0 ||
		_pos.y >= _MAX_POS._pos.y || _pos.y < 0)
		_isLimit = true;
	else
		_isLimit = false;

	if( _pos.x >= _MAX_POS._pos.x )
		_pos.x = _MAX_POS._pos.x-1;
	else if( _pos.x < 0)
		_pos.x = 0;
	
	if( _pos.y >= _MAX_POS._pos.y )
		_pos.y = _MAX_POS._pos.y-1;
	else if( _pos.y < 0)
		_pos.y = 0;
}

bool SellPos::operator==(SellPos sp)
{
	return (_pos == sp._pos);
}
